home *** CD-ROM | disk | FTP | other *** search
/ Aminet 51 / Aminet 51 (2002)(GTI - Schatztruhe)[!][Oct 2002].iso / Aminet / misc / emu / ShowLNX.lha / ShowLNX 0.7 / sources / ShowLNX.c < prev   
Encoding:
C/C++ Source or Header  |  2002-06-29  |  2.1 KB  |  103 lines

  1. /*****************************************************************************
  2. **
  3. **  ShowLNX (c) 2002 by Michaî Pasiecznik (pasiussg@wp.pl).
  4. **  Program jest klasy freeware. O dokonywanych zmianach napisz w poniûszym
  5. **  úródle programu.
  6. **
  7. **  Autor             : Michaî Pasiecznik
  8. **  Data              : 14 lutego 2002
  9. **  Wersja            : 0.7
  10. **
  11. **  Opis programu     : Wyôwietla informacje o nagîówku pliku kartridûa
  12. **                      .lnx, przeznaczonego dla emulatorów Atari Lynx.
  13. **
  14. *****************************************************************************/
  15.  
  16. #include <stdio.h>
  17. #include <string.h>
  18.  
  19. struct
  20. {
  21.   unsigned char magic[4];
  22.   unsigned char bank0a;
  23.   unsigned char bank0b;
  24.   unsigned char bank1a;
  25.   unsigned char bank1b;
  26.   unsigned char versiona;
  27.   unsigned char versionb;
  28.   unsigned char cartname[32];
  29.   unsigned char manufname[16];
  30.   unsigned char rotation;
  31. }header;
  32.  
  33. int main(int argc, char *argv[])
  34. {
  35.  
  36. FILE *plik;
  37. unsigned short bank0,bank1,version;
  38. unsigned int lenght;
  39.  
  40. printf("\nShowLNX v0.7 by Michaî Pasiecznik (pasiussg@wp.pl)\n");
  41.  
  42. if(argc==1)
  43.  {
  44.   printf("\nUûycie: ShowLNX nazwapliku[.lnx]\n\n");
  45.   return(0);
  46.  }
  47.  
  48. if(argc>2)
  49.  {
  50.   printf("\nZîa liczba argumentów!\n\n");
  51.   return(0);
  52.  }
  53.  
  54. if(strstr(argv[1],".lnx")==NULL)
  55.  strcat(argv[1],".lnx");
  56.  
  57. if((plik=fopen(argv[1],"rb"))==NULL)
  58.  {
  59.   printf("\nBrak pliku o takiej nazwie!\n\n");
  60.   fclose(plik);
  61.   return(0);
  62.  }
  63.  
  64. fread(&header,sizeof(header),1,plik);
  65.  
  66. if(strcmp(header.magic,"LYNX")!=0)
  67.  {
  68.   printf("\nTo nie jest plik *.lnx!\n\n");
  69.   return(0);
  70.  }
  71.  
  72. bank0=header.bank0b*256+header.bank0a;
  73. bank1=header.bank1b*256+header.bank1a;
  74. lenght=(bank0+bank1)*256;
  75. version=header.versionb*256+header.versiona;
  76.  
  77. fclose(plik);
  78.  
  79. printf("\nNazwa:   %s",header.cartname);
  80. printf("\nFirma:   %s",header.manufname);
  81. printf("\nDîugoôê: %d",lenght);
  82. printf("\nBank0:   %d",bank0);
  83. printf("\nBank1:   %d",bank1);
  84. printf("\nRotacja: ");
  85.  
  86. if(header.rotation==0)
  87.  printf("brak");
  88. else
  89. if(header.rotation==1)
  90.  printf("w lewo");
  91. else
  92. if(header.rotation==2)
  93.  printf("w prawo");
  94. else
  95.  printf("???");
  96.  
  97. printf("\nTyp:     %s",header.magic);
  98. printf("\nWersja:  %d\n\n",version);
  99.  
  100. return(1);
  101.  
  102. }
  103.